﻿<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema targetNamespace="urn:com:dassault_systemes:PLMCOMPONENTDEF" xmlns:tns="urn:com:dassault_systemes:PLMCOMPONENTDEF" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
	<xs:element name="PLMCOMPONENT">
		<xs:complexType>
			<xs:sequence>
				<xs:choice minOccurs="0" maxOccurs="unbounded">
					<xs:element name="ATTRIBUTE">
						<xs:complexType>
							<xs:attribute name="Name" type="xs:string" use="required" />
							<xs:attribute name="Value" type="xs:string" use="required" />
							<xs:attribute name="Set" type="xs:string" use="required" />
							<xs:attribute name="Optional" type="xs:string" use="optional" />
							<xs:attribute name="Format" type="xs:string" use="optional" />
						</xs:complexType>
					</xs:element>
				</xs:choice>
				<xs:choice minOccurs="0" maxOccurs="unbounded">
					<xs:element name="MULTIVALATTRIBUTE">
						<xs:complexType>
							<xs:attribute name="Name" type="xs:string" use="required" />
							<xs:attribute name="Value" type="xs:string" use="required" />
							<xs:attribute name="Optional" type="xs:string" use="optional" />
							<xs:attribute name="Format" type="xs:string" use="optional" />
						</xs:complexType>
					</xs:element>
				</xs:choice>
				<xs:choice minOccurs="0" maxOccurs="unbounded">
					<xs:element name="EXTENSION">
						<xs:complexType>
							<xs:sequence >
								<xs:choice minOccurs="0" maxOccurs="unbounded">
									<xs:element name="ATTRIBUTE">
										<xs:complexType>
											<xs:attribute name="Name" type="xs:string" use="required" />
											<xs:attribute name="Value" type="xs:string" use="required" />
											<xs:attribute name="Set" type="xs:string" use="required" />
											<xs:attribute name="Optional" type="xs:string" use="optional" />
											<xs:attribute name="Format" type="xs:string" use="optional" />
										</xs:complexType>
									</xs:element>
								</xs:choice>
								<xs:choice minOccurs="0" maxOccurs="unbounded">
									<xs:element name="MULTIVALATTRIBUTE">
										<xs:complexType>
											<xs:attribute name="Name" type="xs:string" use="required" />
											<xs:attribute name="Value" type="xs:string" use="required" />
											<xs:attribute name="Optional" type="xs:string" use="optional" />
											<xs:attribute name="Format" type="xs:string" use="optional" />
										</xs:complexType>
									</xs:element>
								</xs:choice>
								<xs:choice minOccurs="0" maxOccurs="unbounded">
									<xs:element name="INFO">
										<xs:complexType>
											<xs:attribute name="Name" type="xs:string" use="required" />
											<xs:attribute name="Value" type="xs:string" use="required" />
											<xs:attribute name="BasicType" type="xs:string"/>
											<xs:attribute name="Format" type="xs:string" use="optional" />
										</xs:complexType>
									</xs:element>
								</xs:choice>
							</xs:sequence>
							<xs:attribute name="Name" type="xs:string" use="required" />
						</xs:complexType>
					</xs:element>
				</xs:choice>
				<xs:choice minOccurs="0" maxOccurs="unbounded">
					<xs:element name="ASSOCIATEDOBJECT">
						<xs:complexType>
							<xs:attribute name="RelationType" type="xs:string" use="required" />
							<xs:attribute name="PLMID" type="xs:string" use="required" />
						</xs:complexType>
					</xs:element>
				</xs:choice>
				<xs:choice minOccurs="0" maxOccurs="unbounded">
					<xs:element name="STREAMDESCRIPTOR">
						<xs:complexType>
							<xs:attribute name="Format" type="xs:string" use="required" />
							<xs:attribute name="Role" type="xs:string" use="required" />
							<xs:attribute name="Markstamp" type="xs:string" use="required" />
							<xs:attribute name="TypeLate" type="xs:string" use="required" />
							<xs:attribute name="SynchroStamp" type="xs:string"  />
							<xs:attribute name="PersistencyName" type="xs:string"  />
							<xs:attribute name="PersistencyType" type="xs:string" />
						</xs:complexType>
					</xs:element>
				</xs:choice>
				<xs:choice minOccurs="0" maxOccurs="unbounded">
					<xs:element name="SEMANTICRELATION">
						<xs:complexType>
							<xs:sequence>
                <xs:choice minOccurs="0" maxOccurs="unbounded">
                  <xs:element name="SYNCHRONIZATIONDOMAIN">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                          <xs:element name="SYNCHRONIZATIONDATA">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
                                  <xs:element name="ATTRIBUTE">
                                    <xs:complexType>
                                      <xs:attribute name="Name" type="xs:string" use="required" />
                                      <xs:attribute name="Value" type="xs:string" use="required" />
                                      <xs:attribute name="Set" type="xs:string" use="required" />
                                    </xs:complexType>
                                  </xs:element>
                                </xs:choice>
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
                                  <xs:element name="MULTIVALATTRIBUTE">
                                    <xs:complexType>
                                      <xs:attribute name="Name" type="xs:string" use="required" />
                                      <xs:attribute name="Value" type="xs:string" use="required" />
                                    </xs:complexType>
                                  </xs:element>
                                </xs:choice>
                              </xs:sequence>
                              <xs:attribute name="ExtensionType" type="xs:string" use="required" />
                            </xs:complexType>
                          </xs:element>
                        </xs:choice>
                      </xs:sequence>
                      <xs:attribute name="Name" type="xs:string" use="required" />
                    </xs:complexType>
                  </xs:element>
                </xs:choice>
                <xs:choice minOccurs="0" maxOccurs="unbounded">
                  <xs:element name="EXTENSION">
                    <xs:complexType>
                      <xs:sequence >
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                          <xs:element name="ATTRIBUTE">
                            <xs:complexType>
                              <xs:attribute name="Name" type="xs:string" use="required" />
                              <xs:attribute name="Value" type="xs:string" use="required" />
                              <xs:attribute name="Set" type="xs:string" use="required" />
                              <xs:attribute name="Optional" type="xs:string" use="optional" />
                            </xs:complexType>
                          </xs:element>
                        </xs:choice>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                          <xs:element name="MULTIVALATTRIBUTE">
                            <xs:complexType>
                              <xs:attribute name="Name" type="xs:string" use="required" />
                              <xs:attribute name="Value" type="xs:string" use="required" />
                              <xs:attribute name="Optional" type="xs:string" use="optional" />
                            </xs:complexType>
                          </xs:element>
                        </xs:choice>
                      </xs:sequence>
                      <xs:attribute name="Name" type="xs:string" use="required" />
                    </xs:complexType>
                  </xs:element>
                </xs:choice>
							</xs:sequence>
							<xs:attribute name="PLMID" type="xs:string" use="required" />
							<xs:attribute name="PathType" type="xs:string" use="optional" />
							<xs:attribute name="IdRel" type="xs:string" use="required" />
							<xs:attribute name="Category" type="xs:string" use="optional" />
							<xs:attribute name="Role" type="xs:string" use="optional" />
							<xs:attribute name="PrivateData" type="xs:string" use="required" />
							<xs:attribute name="PathInfo" type="xs:string" use="required" />
							<xs:attribute name="Position" type="xs:string" />
						</xs:complexType>
					</xs:element>
				</xs:choice>
				<xs:choice minOccurs="0" maxOccurs="unbounded">
					<xs:element name="PATHTYPE">
						<xs:complexType>
							<xs:sequence >
								<xs:choice minOccurs="0" maxOccurs="unbounded">
									<xs:element name="ATTRIBUTE">
										<xs:complexType>
											<xs:attribute name="Name" type="xs:string" use="required" />
											<xs:attribute name="Value" type="xs:string" use="required" />
											<xs:attribute name="Set" type="xs:string" use="required" />
										</xs:complexType>
									</xs:element>
								</xs:choice>
								<xs:choice minOccurs="0" maxOccurs="unbounded">
									<xs:element name="MULTIVALATTRIBUTE">
										<xs:complexType>
											<xs:attribute name="Name" type="xs:string" use="required" />
											<xs:attribute name="Value" type="xs:string" use="required" />
										</xs:complexType>
									</xs:element>
								</xs:choice>
								<xs:choice minOccurs="0" maxOccurs="unbounded">
									<xs:element name="EXTENSION">
										<xs:complexType>
											<xs:sequence >
												<xs:choice minOccurs="0" maxOccurs="unbounded">
													<xs:element name="ATTRIBUTE">
														<xs:complexType>
															<xs:attribute name="Name" type="xs:string" use="required" />
															<xs:attribute name="Value" type="xs:string" use="required" />
															<xs:attribute name="Set" type="xs:string" use="required" />
															<xs:attribute name="Optional" type="xs:string" use="optional" />
														</xs:complexType>
													</xs:element>
												</xs:choice>
												<xs:choice minOccurs="0" maxOccurs="unbounded">
													<xs:element name="MULTIVALATTRIBUTE">
														<xs:complexType>
															<xs:attribute name="Name" type="xs:string" use="required" />
															<xs:attribute name="Value" type="xs:string" use="required" />
															<xs:attribute name="Optional" type="xs:string" use="optional" />
														</xs:complexType>
													</xs:element>
												</xs:choice>
											</xs:sequence>
											<xs:attribute name="Name" type="xs:string" use="required" />
										</xs:complexType>
									</xs:element>
								</xs:choice>
							</xs:sequence>
							<xs:attribute name="PLMID" type="xs:string" use="required" />
							<xs:attribute name="CustoType" type="xs:string" use="required" />
							<xs:attribute name="ModelerType" type="xs:string" use="required" />
							<xs:attribute name="PathInfo" type="xs:string" use="required" />
						</xs:complexType>
					</xs:element>
				</xs:choice>
				<xs:choice minOccurs="0" maxOccurs="unbounded">
					<xs:element name="INFO">
						<xs:complexType>
							<xs:attribute name="Name" type="xs:string" use="required" />
							<xs:attribute name="Value" type="xs:string" use="required" />
							<xs:attribute name="BasicType" type="xs:string"/>
							<xs:attribute name="Format" type="xs:string" use="optional" />
						</xs:complexType>
					</xs:element>
				</xs:choice>
				<xs:choice minOccurs="0" maxOccurs="unbounded">
					<xs:element name="PROPERTY">
						<xs:complexType>
							<xs:attribute name="Name" type="xs:string" use="required" />
							<xs:attribute name="Value" type="xs:string" use="required" />
						</xs:complexType>
					</xs:element>
				</xs:choice>              
			</xs:sequence>
			<xs:attribute name="PLMID" type="xs:string" use="required" />
			<xs:attribute name="CoreType" type="xs:string" />
		</xs:complexType>
	</xs:element>
</xs:schema>
